package com.yidu.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.yidu.action.vo.ZTree;
import com.yidu.model.SnFinance;
import com.yidu.model.SnRole;
import com.yidu.model.SnUser;

/**
 * 
 * 描述:角色表Dao
 * @author 陈旭
 * @date 2018年11月30日
 */
public interface SnRoleMapper {
    int deleteByPrimaryKey(String roId);

    int insert(SnRole record);

    int insertSelective(SnRole record);

    SnRole selectByPrimaryKey(String roId);

    int updateByPrimaryKeySelective(SnRole record);

    int updateByPrimaryKey(SnRole record);
    /**
     * 查询分公司数
     * @return
     */
    int findBraCount();
	/**
	 * 查询所有
	 * @param map	map集合
	 * @return	角色Bean对象
	 */
    List<SnRole> queryAll(Map<String, Object> map);
    /**
   	 * 查询行数的方法
   	 * @param map 条件
   	 * @return 行数
   	 */
   	public int findCount(Map<String, Object> map);
   	/**
     * 下拉树第一级
     * @return	ZTree list集合
     */
    List<ZTree> queryTree();
    /**
     * 树形第二级
     * @param id	ID
     * @return ZTree list集合
     */
    List<ZTree> queryTreeNode(String id);
    /**
     * 根据角色ID查询模块
     * @return	ZTree list集合
     */
    List<ZTree> findById(String roId);
    /**
     * 后台登录
     * @param userName	用户名
     * @param userPwd	用户密码
     * @return	行数
     */
    SnUser login(SnUser user);
    
    /**
     * 根据分公司ID查询财务总金额
     * @param barId	分公司ID
     * @return	财务对象
     */
    SnFinance findByMoney(String barId);
    
    /**
     * 查询会员数
     * @return	数量
     */
    int findMemberCount();
    
    /**
     * 查询商品数
     * @return  数量
     */
    int findComCount();
    /**
     * 判断旧密码是否一致
     * @param userId
     * @param pwd
     * @return
     */
    @Select(" SELECT count(*) FROM sn_user WHERE user_pwd = #{pwd} AND user_id = #{userId} ")
    int findOldPwd(@Param("userId")String userId,@Param("pwd")String pwd);
    
    /**
     * 修改密码
     * @param userId
     * @param pwd
     * @return
     */
    @Update("UPDATE sn_user SET user_pwd = #{pwd} WHERE user_id = #{userId} ")
    int updatePwd(@Param("userId")String userId,@Param("pwd")String pwd);
}